package com.farm.kaiping.entity;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 用户表(SysUser)表实体类
 *
 * @author zhuhui
 * @since 2024-11-26 23:33:46
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("用户表")
@TableName("sys_user")
public class SysUser extends Model<SysUser> {
	/**
	 * 主键ID
	 */
	@ApiModelProperty("主键ID")
	@TableId(value = "user_id",type = IdType.AUTO)
	private Integer userId;
	/**
	 * 用户名
	 */
	@ApiModelProperty("用户名")
	private String username;
	/**
	 * 密码
	 */
	@ApiModelProperty("密码")
	private String password;
	/**
	 * 排序
	 */
	@ApiModelProperty("排序")
	private String salt;
	/**
	 * 性别(1男2女)
	 */
	@ApiModelProperty("性别(1男2女)")
	private Integer sex;
	/**
	 * 出生日期
	 */
	@ApiModelProperty("出生日期")
	private LocalDate birthDay;
	/**
	 * 电话
	 */
	@ApiModelProperty("电话")
	private String phone;
	/**
	 * 头像地址
	 */
	@ApiModelProperty("头像地址")
	private String avatar;
	/**
	 * 部门ID
	 */
	@ApiModelProperty("部门ID")
	private Integer deptId;
	/**
	 * 角色ID
	 */
	@ApiModelProperty(value = "角色ID")
	private Integer roleId;
	/**
	 * 锁定标记 0正常 1失效 9锁定
	 */
	@ApiModelProperty("锁定标记 0正常 1失效 9锁定")
	private Integer lockFlag;
	/**
	 * 锁定时间
	 */
	@ApiModelProperty("锁定时间")
	private LocalDateTime lockTime;
	/**
	 * 微信登录openId
	 */
	@ApiModelProperty("微信登录openId")
	private String wxOpenid;
	/**
	 * 小程序openId
	 */
	@ApiModelProperty("小程序openId")
	private String miniOpenid;
	/**
	 * 用户类型;1：平台用户，2：平台管理员
	 */
	@ApiModelProperty("用户类型;1：平台用户，2：平台管理员")
	private Integer classifyId;
	/**
	 * 真实姓名
	 */
	@ApiModelProperty("真实姓名")
	private String realName;
	/**
	 * 证件号码
	 */
	@ApiModelProperty("证件号码")
	private String idCard;
	/**
	 * 密码修改时间
	 */
	@ApiModelProperty("密码修改时间")
	private LocalDateTime passwordModifyTime;
	/**
	 * 登录时间
	 */
	@ApiModelProperty("登录时间")
	private LocalDateTime loginTime;
	/**
	 * 删除标记(0否1是)
	 */
	@ApiModelProperty("删除标记(0否1是)")
	@TableLogic(value = "0",delval = "1")
	private Integer delFlag;
	/**
	 * 新增时间
	 */
	@ApiModelProperty("新增时间")
	private LocalDateTime createTime;
	/**
	 * 创建人ID
	 */
	@ApiModelProperty("创建人ID")
	private Integer createUserId;
	/**
	 * 创建人姓名
	 */
	@ApiModelProperty("创建人姓名")
	private String createUserName;
	/**
	 * 更新时间
	 */
	@ApiModelProperty("更新时间")
	private LocalDateTime updateTime;
	/**
	 * 更新人ID
	 */
	@ApiModelProperty("更新人ID")
	private Integer updateUserId;
	/**
	 * 更新人姓名
	 */
	@ApiModelProperty("更新人姓名")
	private String updateUserName;
	/**
	 * 租户ID
	 */
	@ApiModelProperty("租户ID")
	private Integer tenantId;

	/**
	 * sysRole 用户的部门
	 */
	@ApiModelProperty(value = "sysDept")
	@TableField(exist = false)
	private SysDept sysDept;
	/**
	 * 用户权限
	 */
	@ApiModelProperty("用户权限")
	@TableField(exist = false)
	private List<String> permissions;
	/**
	 * roleCode 用户角色编码
	 */
	@ApiModelProperty(value = "roleCode")
	@TableField(exist = false)
	private String roleCode;
	/**
	 * sysRole 用户的角色
	 */
	@ApiModelProperty(value = "sysRole")
	@TableField(exist = false)
	private SysRole sysRole;
	/**
	 * 用户所属角色-菜单ID集合
	 */
	@ApiModelProperty("用户所属角色-菜单ID集合")
	@TableField(exist = false)
	private List<Integer> menuIdList;
	/**
	 * 用户所属-角色的菜单集合
	 */
	// @ApiModelProperty("用户所属角色的菜单集合")
	// @TableField(exist = false)
	// private List<SysMenu> menuList;


}

